
# 中间间的执行顺序，由上到下，先运行到处理视图，然后跳到下一个中间键，在处理完视图调用后处理响应，
# 然后返回上一个中间键，最后返回的顺序是：视图处理前：从上到下，视图处理后，返回响应：从下到上

def my_middleware(get_response):
    # 初始化djanjo的时候调用
    print('init 被调用')
    def middleware(request):
        # 处理视图前被调用
        print('before request 被调用')
        response = get_response(request)
        # 处理视图后，响应前被调用
        print('after response 被调用')
        return response
    return middleware

def my_middleware2(get_response):
    # 初始化djanjo的时候调用
    print('init2 被调用')
    def middleware(request):
        # 处理视图前被调用
        print('before request2 被调用')
        response = get_response(request)
        # 处理视图后，响应前被调用
        print('after response2 被调用')
        return response
    return middleware